Projecting a virtual image at a physical surface

ABSTRACT

Techniques for projecting virtual images are described herein. A plane of a surface may be identified, and a virtual image is projected onto the plane of the physical surface. The virtual image is rendered at a graphical user interface of a mobile computing device.

TECHNICAL FIELD

This disclosure relates generally to virtual image projection. Morespecifically, the disclosure describes projection of a virtual image toa plane of a physical surface.

BACKGROUND

Mobile computing devices are becoming more common place in the market.In some scenarios, mobile computing devices are useful in augmentedreality environments. In augmented reality environments, virtual objectsare represented as objects in a physical environment via a graphicaluser interface of the mobile computing devices. For example, a camera ofa mobile computing device may be used to capture elements within aphysical environment and modify a representation of the physicalenvironment with virtual images rendered at a graphical user interfaceof the mobile computing device.

BRIEF DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram of a mobile computing device having virtualimage projection application to attach a virtual image to a physicalsurface;

FIG. 2 is diagram illustrating the mobile computing device projectingthe virtual image onto the physical surface;

FIG. 3 is a diagram illustrating the mobile computing device projectingthe virtual image onto the physical surface and increasing or decreasinga magnification of the virtual image based on movement of the mobilecomputing device;

FIG. 4 is a diagram illustrating the mobile computing device projectinga virtual image onto the physical surface and adjusting an orientationof the virtual image based on movement of a user within an augmentedreality environment;

FIG. 5 is a diagram illustrating the mobile computing device projectingthe virtual image onto the physical surface in a window mode;

FIG. 6 is a diagram illustrating the mobile computing devicetransitioning from a surface mode to the window mode;

FIG. 7 is a diagram illustrating orientation of the mobile computingdevice to the physical surface in either the window mode or the surfacemode;

FIG. 8 is a side view diagram illustrating a light source projectingonto the physical surface to determine orientation of the mobilecomputing device with respect to the physical surface;

FIG. 9 is a diagram illustrating a light projected onto a surface suchthat the orientation of the mobile computing device with respect to thephysical surface may be determined;

FIG. 10 is a block diagram illustrating a method for projecting avirtual image onto a physical surface; and

FIG. 11 is a block diagram depicting an example of a computer-readablemedium configured to project a virtual image onto a physical surface.

DETAILED DESCRIPTION

The subject matter disclosed herein relates to techniques for mobilecomputing device projection of a virtual image onto a physical surface.The physical surface, a wall for example, is associated with a plane.The virtual image is projected onto the plane of the physical surface.In aspects, the virtual image may be associated with a virtual plane andthe projection may place the virtual image at the plane of the physicalsurface such that the virtual plane and the physical plane coincide. Forexample, the virtual image may be a virtual poster attached to aphysical wall of a building. In this scenario, the virtual poster isrendered at a graphical user interface (GUI) of the mobile computingdevice. As a user holding the mobile computing device moves over theplane of the physical surface, some or all portions of the virtual imageare rendered at the GUI. In aspects, a user moving through an augmentedreality environment may see virtual posters disposed on surfaces, suchas a wall, of the augmented reality environment.

Projecting a virtual image, as referred to herein, includes virtuallyattaching a virtual image to a plane of a physical surface generating afixed physical location of the virtual image on the physical surface inan augmented reality environment. In a physical attachment, an image maybe disposed on a physical poster hung on a physical wall. In a virtualattachment scenario achieved by virtual image projection techniquesdescribed herein, a virtual image simulates a physical poster attachedto the physical wall in the GUI of the mobile computing device.Embodiments of the techniques described herein are discussed in moredetail below.

FIG. 1 is a block diagram of a mobile computing device having virtualimage projection application to attach a virtual image to a physicalsurface. The mobile computing device 100 may include a processor 102, astorage device 104 including a non-transitory computer-readable medium,and a memory device 106. The mobile computing device 100 may include adisplay driver 108 configured to operate a display device 110 to renderimages at a graphical user interface (GUI), light source driver 112configured to operate a light source 114, and a camera driver 116configured to operate a camera device 118.

The mobile computing device 100 includes modules of a virtual imageapplication 119 configured to generate virtual images rendered in anaugmented reality environment. As illustrated in FIG. 1, the modulesinclude a plane identification module 120, an image projection module122, and a rendering module 124. The modules 120, 122, and 124 may belogic, at least partially comprising hardware logic. In some examples,the modules 120, 122, 124 may be instructions stored on a storage mediumconfigured to be carried out by a processing device, such as theprocessor 102. In yet other examples, the modules 120, 122, 124 may be acombination of hardware, software, and firmware. The modules 120, 122,124 may be configured to operate independently, in parallel,distributed, or as a part of a broader process. In any case, the modules120, 122, 124 are configured to carry out operations. The planeidentification module 120 may identify a plane of a physical surface.For example, the plane identification module 120 may gather data relatedto a location having a plane, such as a wall, wherein a virtual image isto be projected. In some scenarios, the plane identification module 120may gather data via a geo-location sensing device such as a GPS, andmay, via the camera device 118 capture an image of the wall.

The image projection module 122 may project a plane of a virtual imageonto the plane of the physical surface. For example, once the plane of awall is identified by the plane identification module 120, a plane of avirtual image, such as a plane associated with a piece of paper that isto be virtually hung on the wall is projected onto the wall. Therendering module 124 may then render the virtual image at a GUI of themobile computing device 100 via the display device 110. In this way,virtual images are hung, or placed, on physical surfaces.

In some scenarios, the modules 120, 122, 124 may be a set ofinstructions stored on the storage device 104, that when executed by theprocessor 102, direct the mobile computing device 100 to performoperations. The modules 120, 122, 124 may, in some scenarios, beimplemented in logic, at least partially including hardware logic, suchas electronic circuits, to carry out the operations discussed herein.The modules 120, 122, 124 may be considered separate modules orsub-modules of a parent module. Additional modules may also be included.For example, the mobile computing device 100 may include an angulardetection module (not shown) configured to determine whether the mobilecomputing device is tilted in relation to an identified physicalsurface. As another example, the mobile computing device 100 may includea movement module (not shown) to generate virtual movement of the avirtual image based on physical movement of the mobile computing device100 based on data gathered from one or more sensors configured to detectmovement. In some scenarios, a movement module may be configured togenerate virtual movement of the virtual image based on physicalmovement of a user within the virtual environment. For example, a usermay wave their hand in front of the camera in the physical environmentcausing a virtually projected poster to flip over. Further examples arediscussed in more detail below.

The virtual image may be rendered in various modes, such as a surfacemode, a window mode, or any combination of the surface mode and windowmode. As discussed in more detail below, the surface mode may enable auser to slide mobile computing device 100 on a physical surface toexpose various parts of the projected virtual image. A window mode mayrender a virtual image while the user moves through an augmented realityenvironment within which the virtual image is projected onto a givensurface. In either mode, virtual movement of the virtual image isgenerated based on physical movement of the mobile computing device 100.In embodiments, the mobile computing device 100 may include sensors 126.The sensors 126 may provide various types of data to the virtual imageprojection application 119. For example, the sensors 126 may includegyrometers, magnetometers, ambient sensors, geo-location sensors, andthe like. In embodiments, one or more sensors 126 are configured togather movement data indicating a transition from one mode to another,as discussed in more detail below in regard to FIG. 6.

The mobile computing device 100 may include a network interfacecontroller 128 component configured to connect the mobile computingdevice 100 to remote computing devices 130 via a network 132. In somescenarios, the network interface controller 128 is an expansion cardconfigured to be communicatively coupled to a system bus 134. In otherscenarios, the network interface controller 128 may be integrated with amotherboard of a computing device, such as the mobile computing device100. In embodiments, the physical surface identified by the planeidentification module 120 may be based, at least in part, by dataprovided by a remote computing device, such as one of the remotecomputing devices 130. For example, geo-location data captured by one ormore of the sensors 126 can be sent to remote computing devices 130,such as servers having virtual images preselected for a given location.The virtual image to be projected onto the plane of the physical surfacemay be provided to the mobile computing device 100 from one or more ofthe remote computing devices 130 via the network 132.

In embodiments, identification of the physical surface may be performedby receiving input from a user of the mobile computing device 100. Forexample, the user may download a magazine and intent to read themagazine at a desk. In this scenario, the virtual image projectionapplication 119 may provide options to the user to place a virtual imageof the magazine on the plane of the desk. As discussed in more detailbelow in reference to FIG. 2, if the magazine's native dimensions arelarger than the dimensions of the mobile computing device 100, the usermay move the mobile computing device 100 over the surface of the desk toreveal different portions of the magazine's projected virtual image onthe desk. In embodiments, the camera device 118 is configured to trackreflections of light projected by the light source 114 on a physicalsurface such that movement of the mobile computing device 100 over thephysical surface generates virtual movement of the projected virtualimage.

The mobile computing device 100, as referred to herein, is a computingdevice wherein components such as a processing device, a storage device,and a display device are disposed within a single housing. For example,the mobile computing device 100 may be a tablet computer, a smartphone,a handheld videogame system, a cellular phone, an all-in-one slatecomputing device, or any other computing device having all-in-onefunctionality wherein the housing of the computing device houses thedisplay was well as components such as storage components and processingcomponents.

The processor 102 may be a main processor that is adapted to execute thestored instructions. The processor 102 may be a single core processor, amulti-core processor, a computing cluster, or any number of otherconfigurations. The processor 102 may be implemented as ComplexInstruction Set Computer (CISC) or Reduced Instruction Set Computer(RISC) processors, x86 Instruction set compatible processors,multi-core, or any other microprocessor or central processing unit(CPU).

The memory device 106 can include random access memory (RAM) (e.g.,static random access memory (SRAM), dynamic random access memory (DRAM),zero capacitor RAM, Silicon-Oxide-Nitride-Oxide-Silicon SONOS, embeddedDRAM, extended data out RAM, double data rate (DDR) RAM, resistiverandom access memory (RRAM), parameter random access memory (PRAM),etc.), read only memory (ROM) (e.g., Mask ROM, programmable read onlymemory (PROM), erasable programmable read only memory (EPROM),electrically erasable programmable read only memory (EEPROM), etc.),flash memory, or any other suitable memory systems. The main processor102 may be connected through the system bus 134 (e.g., PeripheralComponent Interconnect (PCI), Industry Standard Architecture (ISA),PCI-Express, HyperTransport®, NuBus, etc.) to components including thememory 106 and the storage device 104.

The display interface 110 may be a point of interaction with software orhardware of the mobile computing device 100 and the display device 112.For example, the display interface may be a digital video interface(DVI), a high-definition multimedia interface (HDMI), and the like. Thedisplay may be a built-in display, or a peripheral display of the mobilecomputing device 100. In embodiments, the display 112 includestouch-screen functionality.

The camera driver 116 is configured to direct the camera device 118 tocapture visual information related to the physical surface and/or theenvironment of the physical surface. The camera device 118 may be avideo camera configured to capture real-time video of the physicalsurface and the environment of the physical surface. In someembodiments, more than one camera device 118 may be included in themobile computing device 100. In some aspects, the mobile computingdevice 100 includes a depth sensing camera, either as an additionalcomponent or as an integrated function of the camera device 118,configured to determine a distance between the mobile computing deviceand a physical surface, as discussed in more detail below.

The light source driver 112 is configured to direct the light source114, such as light emitting diode, to turn on and turn off in responseto operations of the virtual image projection application 119, asdiscussed in more detail below in regard to FIG. 9. For example, thelight source 114 may be turned on in order to project light onto thephysical surface, wherein the shape of the projected light indicates theorientation of the mobile computing device 100 in relation to thephysical surface. As another example, the light source 114 may be usedto track movements of the mobile computing device 100 over a physicalsurface.

The block diagram of FIG. 1 is not intended to indicate that the mobilecomputing device 100 is to include all of the components shown inFIG. 1. Further, the mobile computing device 100 may include any numberof additional components not shown in FIG. 1, depending on the detailsof the specific implementation.

FIG. 2 is diagram illustrating the mobile computing device projectingthe virtual image onto the physical surface. The physical surface 202may be any physical surface having a plane. For example, the physicalsurface 202 may be a surface of a desk, a wall, a floor, or any otherphysical surface having a plane associated with the physical surface. Amobile computing device, such as the mobile computing device 100 of FIG.1, may be placed on the physical surface 202. A virtual image 204 isprojected upon the physical surface 202.

As discussed above in regard to FIG. 1, a virtual image may havedimensions that are larger than the mobile computing device 100. In thisscenario, a portion of a virtual image 204 may be rendered at thedisplay device 110 of the mobile computing device 100. As the mobilecomputing device 100 moves over the physical surface 202, as indicatedat 206, other portions of the virtual image 204 may be rendered at thedisplay device 110, as indicated in the dashed box 208 illustrating themobile computing device 100 in a new disposition on the physical surface202. In embodiments, the techniques described herein enable the mobilecomputing device 100 to be used to explore the virtual image 204 bymovement of the mobile computing device 100 over the physical surface202. Movement of the mobile computing device 100 over the physicalsurface 202 may expose different portions of the virtual image 204.

In embodiments, the virtual image 204 is affixed to the physicalsurface, or to the plane associated to the physical surface 202.Affixing the virtual image 204 to the plane of the physical surface 202simulates a physical posters or other material affixed to a physicalsurface.

In embodiments, the movement indicated by the arrow 206 may occur in aplane parallel to, or coinciding with, the plane of the physical surface202 due to the mobile computing device 100 being substantially parallelto the physical surface 202. In this scenario, operations of the virtualimage projection application 119 when the mobile computing device 100 issubstantially parallel to the plane of the physical surface 202 may bereferred to herein as “surface mode.” As discussed in more detail below,the virtual image projection application 119 may have a second mode ofoperation, referred to herein as “window mode,” wherein the mobilecomputing device is not parallel to the plane of the physical surface202.

As discussed above in reference to FIG. 1, a light source, such as thelight source 114 of FIG. 1, may be used project light onto the physicalsurface 202, and a camera device, such as the camera device 118, maycapture variations of light reflected from the physical surface 202indicating movement of the mobile computing device. In some scenarios,the camera device 118 may include a fish-eye lens configured to capturethree dimensional data even when in the surface mode. In this scenario,the virtual image projection application 119 may implement featuretracking to determine movement of the mobile computing device 100 in anaugmented reality environment, as discussed in more below in regard toFIG. 5 and FIG. 6.

FIG. 3 is a diagram illustrating the mobile computing device projectingthe virtual image onto the physical surface and increasing or decreasinga magnification of the virtual image based on movement of the mobilecomputing device. In FIG. 3, the physical surface 202 is a surface of atable 302. The virtual image 204 is projected onto the physical surface202 as indicated by the dashed lines 304, and rendered at the displaydevice 110 of the mobile computing device 100.

In embodiments, the virtual image projection application 119 discussedabove is configured to interpret movement data gathered from componentsof the mobile computing device 100, such as the one or more sensors 121,the camera device 118, and the like. For example, the one or moresensors 121 may include an inertial sensor of the computing device, suchas a gyrometer, an accelerometer, a magnetometer, and the like. Asanother example, movement towards and away from the physical surface 202may be captured by a depth sensing camera, as discussed above in regardto FIG. 1. In another example, the virtual image projection application119 may derive local geometry using known references such as human headsize, inter-ocular distance, and the like, to determine a distance asthe mobile computing device 100 is disposed at various distances fromthe physical surface 202.

As illustrated in FIG. 3, movement away or towards the physical surface302, as indicated by the arrow 306, may alter the magnification of thevirtual image as rendered in the display of the mobile computing device100. For example, movement of the mobile computing device 100 in adirection away from the physical surface 202 may decrease themagnification of the virtual image within the display of the mobilecomputing device 100. In another example, movement of the mobilecomputing device 100 in a direction towards the physical surface 202increases the magnification of the virtual image within the display. Thedecrease or increase of magnification may be referred to as a “zoom out”or “zoom in” function respectively.

FIG. 4 is a diagram illustrating the mobile computing device projectinga virtual image onto the physical surface and adjusting an orientationof the virtual image based on movement of a user within an augmentedreality environment. The virtual image projection application 119discussed above in may enable a user to interact with an augmentedreality environment. As illustrated in FIG. 4, a user's hand 402 may beused to rotate the virtual image 202, as indicated by the arrow 404. Asa result, the virtual image 204 is virtually rotated and rendered at thedisplay in the rotated position, as generally indicated by the arrow406.

In embodiments, other interactions between the user and the augmentedreality environment are contemplated. For example, the user may turn thevirtual image over revealing a back side of the virtual image 204, theuser may draw on the virtual image 204, or any other interaction whereinthe user interacts with the virtual image 204 disposed on a plane of thephysical surface 202.

FIG. 5 is a diagram illustrating the mobile computing device projectingthe virtual image onto the physical surface in a window mode. Asdiscussed above, the virtual image projection application 119 mayoperate in two modes: the surface mode discussed above in reference toFIG. 2 and illustrated in FIG. 3 and FIG. 4, and a window modeillustrated in FIG. 5. In window mode, the mobile computing device 100renders a three dimensional view of the augmented reality environment500. In some embodiments, the window mode is initiated upon detection ofa non-parallel orientation of the mobile computing device 100 to thephysical surface 202, discussed in more detail below in regard to FIG. 8and FIG. 9.

In embodiments, the virtual image projection application 119 tracksfeatures of the augmented reality environment 500, such as a corner 502of the table 302. In this scenario, the virtual image projectionapplication 119 tracks the position of the corner 502 to coherentlyplace the virtual image 204 within the augmented reality environment 500during movement of the mobile computing device 100. Other features maybe tracked, such as a wall seam, a floor seam, or any other fixedfeature within the augmented reality environment 500.

FIG. 6 is a diagram illustrating the mobile computing devicetransitioning from a surface mode to the window mode. A transitionbetween modes may be rendered at the display 110 of the computing device100. As indicated at 602, the mobile computing device 100 may rendervirtual image 204 in two dimensions during surface mode. In surfacemode, the mobile computing device 100 is parallel to a plane of thephysical surface 202. The mobile computing device may be tilted by auser 604. The tilting movement, indicated by the arrow 606, results inthe mobile computing device 100 having an orientation that is notparallel to a plane of the physical surface 202. As a result, indicatedby the arrow 608, the virtual image 204 will be rendered in the threedimensions of the augmented reality environment, as generallyillustrated at 610.

As discussed above in reference to FIG. 5, feature tracking may beimplemented by the virtual image projection application 119 such thattransitions between surface mode and window mode, or transitions betweenwindow mode and surface mode, may be executed with reduced renderingerrors. In some embodiments, the absence of a three dimensional featuremay indicate that the mobile computing device 100 is being used insurface mode, and the presence of a three dimensional feature mayindicate that the mobile computing device 100 is being used in a windowmode. In some scenarios, a given frame of video capturing the augmentedreality environment may be cached for a period of time to pre-emptrenderings of the augmented reality environment. For example, a givenframe may be cached for 1 second. If the mobile computing device 100 ismoved during the 1 second period, the frame may be used as a referenceto keep the virtual image fixed on the physical surface 202 during themovement.

FIG. 7 is a diagram illustrating orientation of the mobile computingdevice to the physical surface in either the window mode or the surfacemode. In surface mode, the mobile computing device 100 is parallel, orat least substantially parallel to a plane of the physical surface 202,as indicated at 700. In other words, in surface mode a vector 702 normalto the physical surface 202 is also normal to the mobile computingdevice 100. In window mode, indicated at 704, the angle of a vector 706normal to the mobile computing device 100 is not normal to the physicalsurface 202. For example, in window mode, the angle 708 is less than 90degrees. In window mode, the resulting augmented reality environmentrendered at the mobile computing device 100 is likely to include 3dimensions, as opposed to 2 dimensions that may be rendered in surfacemode.

FIG. 8 is a side view diagram illustrating a light source projectingonto the physical surface to determine orientation of the mobilecomputing device with respect to the physical surface. To determinewhether the mobile computing device 100 is in window mode or surfacemode, techniques may be employed to render the augmented realityenvironment coherently based on orientation of the mobile computingdevice in relation to the physical surface 202. FIG. 8 illustrates thatthe mobile computing device 100 may illuminate the physical surface 202using a light source, such as the light source 114 discussed above inregard to FIG. 1. The illumination, indicated at 802, may be cast uponthe physical surface 202 to determine an angle, such as the angle 708discussed above in reference to FIG. 7, indicating a degree of tilt ofthe mobile computing device 100 in relation to the physical surface 202.

FIG. 9 is a diagram illustrating a light projected onto a surface suchthat the orientation of the mobile computing device with respect to thephysical surface may be determined. The light projected onto thephysical surface 202 is indicated by the dashed arrows 902. Theprojected light 902 results in an illumination, such as the illumination802 discussed above in reference to FIG. 8, having a shape that may beused to determine the degree of tilt of the mobile computing device 100in relation the physical surface 202. In other words, an angularrelationship between the physical surface 202 and the mobile computingdevice 100 is determined by the shape of the light projected onto thephysical surface 202.

In the scenario illustrated in FIG. 9, the shape is an ellipse 904indicating that the mobile computing device 100 is being held at anangle, such as the angle 708 discussed above in reference to FIG. 7 andFIG. 8. The ellipse 904 has a major axis 906 and a minor axis 908. Acomparison of the major axis 906 to the minor axis 908 indicates adegree of tilt. For example, when the major axis 906 is equal to theminor axis 908, the virtual image projection application 119 maydetermine that the mobile computing device 100 is being used in thesurface mode. However, when the major axis 906 is greater than the minoraxis 908, the virtual image projection application 119 may determinethat the mobile computing device 100 is being used in the window mode.

FIG. 10 is a block diagram illustrating a method for projecting avirtual image onto a physical surface. A plane of a surface isidentified at 1002. The plane may be identified using location-basedtechniques such as GPS, geo-fencing, and the like that may identify asurface having a virtual image attached to the physical surface. Forexample, an advertisement may be assigned to a physical wall. When themobile computing device 100 is near by the physical wall, the method1000 includes identifying the physical surface of the wall.

At 1004, a plane of a virtual image is projected onto the plane of thephysical surface that was identified at 1002. In this manner, thevirtual image is virtually pasted to the physical surface, similar tohow a poster may be pasted to a wall in a non-augmented realityenvironment. In other words the plane of the virtual image may beadjacent to, or coincide with the plane of the physical surface.

At 1006, the virtual image is rendered at a graphical user interface ofa mobile computing device. The virtual image is rendered in an augmentedreality environment. As discussed above, the virtual image may berendered in the surface mode, a window mode, in a transition from onemode to another, or any combination thereof. In surface mode, differentportions of the virtual image may be exposed by movement of the mobilecomputing device over the physical surface.

In some scenarios, the method 1000 may include varying magnificationbased on movement of the mobile computing device towards and away fromthe physical surface. For example, the method 1000 may includeincreasing magnification of the virtual image as a result of movement ofthe mobile computing device towards the physical surface.

FIG. 11 is a block diagram depicting an example of a computer-readablemedium configured to project a virtual image onto a physical surface.The computer-readable medium 1100 may be accessed by a processor 1100over a computer bus 1104. In some examples, the computer-readable medium1100 may be a non-transitory computer-readable medium. In some examples,the computer-readable medium may be a storage medium, but not includingcarrier waves, signals, and the like. Furthermore, the computer-readablemedium 1100 may include computer-executable instructions to direct theprocessor 1102 to perform the steps of the current method.

The various software components discussed herein may be stored on thetangible, non-transitory, computer-readable medium 1100, as indicated inFIG. 11. For example, a virtual image projection application 1106 may beconfigured to identify a plane of a physical surface, project a plane ofa virtual image onto the plane of the physical surface, and render thevirtual image at a graphical user interface of a mobile computingdevice.

Examples may include subject matter such as a method, means forperforming acts of the method, at least one machine-readable mediumincluding instructions that, when performed by a machine cause themachine to performs acts of the method, or of an apparatus or system forprojecting a virtual image according to embodiments and examplesdescribed herein.

Example 1 is a method for virtual image projection including identifyinga plane of a physical surface, projecting a virtual image onto the planeof the physical surface, and rendering the virtual image at a graphicaluser interface of a mobile computing device.

Example 2 includes the subject matter of Example 1, wherein when thecomputing device is smaller than the virtual image, the portions of thevirtual image are rendered at the graphical user interface as the mobilecomputing device is moved over the plane of the physical surface.

Example 3 includes any combination of the subject matter of Examples1-2, including an additional element wherein content of the virtualimage is rendered as magnified as the mobile computing device is movedover the plane of the physical surface.

Example 4 includes any combination of the subject matter of Examples1-3, further including rendering a surface mode wherein the virtualimage is rendered as the mobile computing device is moved over the planeof the physical surface when the mobile computing device is parallel tothe plane of the physical surface. Additionally or alternatively, therendering of the virtual image may include rendering a window modewherein the virtual image is rendered when the mobile computing deviceis not parallel to the plane of the physical surface.

Example 5 includes any combination of the subject matter of Examples1-4, wherein the surface mode illustrates the virtual in two dimensions.Additionally or alternatively, the window mode may illustrate thevirtual image having two dimensions in a three dimensional environment.

Example 6 includes any combination of the subject matter of Examples1-5, further including transitioning between the surface mode and thewindow mode. Transitioning between modes may occur when the mobilecomputing device is moved from a disposition parallel to the plane ofthe physical surface to a disposition that is not parallel to the planeof the physical surface.

Example 7 includes any combination of the subject matter of Examples1-6, further including projecting light from the mobile computing deviceto the physical surface. An angular relationship between the mobilecomputing device and the physical surface may be determined based on theshape of the light projected. The angular relationship may be used todetermine whether the mobile computing device is parallel ornon-parallel to the plane of the physical surface.

Example 8 includes any combination of the subject matter of Examples1-7, further including generating virtual movement of the virtual imagebased on physical movement of the mobile computing device at the planeof the physical surface. For example, movement of the mobile computingdevice may generate movement of the virtual image that is rendered onthe mobile computing device.

Example 9 includes any combination of the subject matter of Examples1-8, further including increasing magnification of the virtual imagegenerated by movement of the mobile computing device in a directiontowards the physical surface. Alternatively or additionally, the subjectmatter may include decreasing magnification of the virtual imagegenerated by movement of the mobile computing device in a direction awayfrom the physical surface.

Example 10 includes any combination of the subject matter of Examples1-9, further including generating virtual movement of the virtual imagebased on physical movement of a user within a virtual environment inwhich the virtual image is projected.

Example 11 is a system for projecting a virtual image. The system mayinclude a processing device and modules to be implemented by theprocessing device. The modules may include a plane identification moduleto identify a plane of a physical surface. The modules may include animage projection module to project a plane of a virtual image onto theplane of the physical surface. The modules may also include a renderingmodule to render the virtual image at a graphical user interface of amobile computing device.

Example 12 includes the subject matter of Example 11, wherein thecomputing device is smaller than the virtual image such that therendering module renders only portions of the virtual image. As themobile computing device is moved over the plane of the physical surface,additional portions are rendered.

Example 13 includes the subject matter of Example 12, further includingmagnifying the content of the virtual image as the as the mobilecomputing device is moved over the plane of the physical surface.

Example 14 includes any combination of the subject matter of Examples11-13, wherein the rendering module is to further render a surface modewherein the virtual image is rendered as the mobile computing device ismoved over the plane of the physical surface when the mobile computingdevice is parallel to the plane of the physical surface. Alternativelyor additionally, the rendering module is to a window mode wherein thevirtual image is rendered when the mobile computing device is notparallel to the plane of the physical surface.

Example 15 includes any combination of the subject matter of Examples11-14, wherein the rendering module, when rendering in surface mode,illustrates the virtual image in two dimensions. Additionally oralternatively, the rendering module, when rendering in window mode,illustrates the virtual image having two dimensions in a threedimensional environment.

Example 16 includes any combination of the subject matter of Examples11-15; the rendering module is to further render transitions between thesurface mode and the window mode. For example, when the mobile computingdevice is moved from a disposition parallel to the plane of the physicalsurface to a disposition that is not parallel to the plane of thephysical surface, the rendering module may render the transition fromthe surface mode to the window mode.

Example 17 includes any combination of the subject matter of Examples11-16, the system being implemented at least partially on the mobilecomputing device, wherein the mobile computing device further includes alight source. The system may further include an angular detection moduleto project light from the light source to the physical surface anddetermine an angular relationship between the mobile computing deviceand the physical surface based on the shape of the light projected. Theangular detection module may determine whether the angular relationshipindicates that the mobile computing device is parallel or non-parallelto the plane of the physical surface.

Example 18 includes any combination of the subject matter of Examples11-17, further including a movement module to generate virtual movementof the virtual image based on physical movement of the mobile computingdevice at the plane of the physical surface.

Example 19 includes the subject matter of Example 18, as well as anycombination of the subject matter of Examples 11-17, wherein the virtualmovement that is generated by the movement module and rendered at thegraphical user interface may include increasing magnification of thevirtual image generated by movement of the mobile computing device in adirection towards the physical surface. Alternatively or additionally,the virtual movement generated may include decreasing magnification ofthe virtual image generated by movement of the mobile computing devicein a direction away from the physical surface.

Example 20 includes the subject matter of any combination of Examples11-19, further including a movement module to generate virtual movementof the virtual image based on physical movement of a user within avirtual environment in which the virtual image is being projected. Forexample, a user's hand may be captured by an image capturing device,such as a camera, and be used to manipulate the rendering of the virtualimage at the graphical user interface, thereby providing an interactivevirtual environment.

Example 21 includes a non-transitory computer-readable medium. In somescenarios, the computer-readable medium may include code, that whenexecuted, cause a processing device to carry out the method discussedabove in Examples 1-10 in any combination.

Example 22 includes an apparatus for projected a virtual image. Theapparatus may include a processing device, and system memory. The systemmemory may be configured to store instructions executable by theprocessing device to initiate operations, the operations includingidentifying a plane of a physical surface, and projecting a plane of avirtual image onto the plane of the physical surface. The operations mayfurther include rendering the virtual image at a graphical userinterface of a mobile computing device.

Example 23 includes the apparatus of Example 22, wherein the apparatusis to carry out operations including the operations in any combinationof the subject matter of Examples 1-10.

Example 24 is an apparatus for projecting a virtual image. The apparatusmay include a means for identifying a plane of the physical surface, ameans for projecting a plane of a virtual image onto the plane of thephysical surface, and a means for rendering the virtual image at agraphical user interface. The means recited may include any of thedevices and/or structures, such as the processing device and/or themodules discussed above in reference to Examples 11-20. Other means maybe implemented as well.

In Example 25, the means for rendering in Example 24 is to renderportions of the virtual image at the graphical user interface, ratherthan the entire virtual image when the mobile computing device issmaller in size than the dimensions of the virtual image.

Example 26 includes any combination of the subject matter of Examples24-25, further including a means for rendering the virtual image asmagnified as the mobile computing device is moved over the plane of thephysical surface.

Example 27 includes any combination of the subject matter of Examples24-26, further including rendering, via the rendering means, a surfacemode wherein the virtual image is rendered as the mobile computingdevice is moved over the plane of the physical surface, and when themobile computing device is parallel to the plane of the physicalsurface. Alternatively or additionally, the rendering means may render awindow mode wherein the virtual image is rendered when the computingdevice is not parallel to the plane of the physical surface. Forexample, in window mode, the virtual image may be represented in athree-dimensional environment when in window mode, whereas the virtualimage may be represented as a two dimensional document without the threedimensional environment during surface mode rendering.

Example 28 includes any combination of the subject matter of Examples24-27, furthering including a means for transitioning between thesurface mode and the window mode. The means for transitioning may be astand-alone means, or a sub-means to the rendering means. In someexamples, the means for transitioning may gather data indicating a shiftin angular disposition of the mobile computing device in relationship tothe physical surface. For example, when the mobile computing device islifted off of a surface to a disposition that is not parallel to thesurface, the transitioning means may indicate the transition and themeans for rendering may render the transition from a two dimensionalrendering of the surface to a three dimensional rendering of the surfacein a three-dimensional environment.

Example 29 includes any combination of the subject matter of Examples24-28, further including a light source, and a means for projectinglight from the light source to the physical surface. The apparatus mayfurther include a means for determining an angular relationship betweenthe mobile computing device and the physical surface, and a means fordetermining whether the angular relationship indicates that the mobilecomputing device is parallel or non-parallel to the plane of thephysical surface. The means discussed in Example 29 may be implementedby modules, such as the modules discussed above in Example 17.

Example 30 includes any combination of the subject matter of Examples24-29, further including a means for generating virtual movement of thevirtual image based on physical movement of the mobile computing deviceat the plane of the physical surface. The means discussed in Example 30may be implemented by modules, such as the modules discussed above inExample 18.

Example 31 includes any combination of the subject matter of Examples24-30, further including a means for increasing magnification of thevirtual image generated by movement of the mobile computing device in adirection towards the physical surface. Alternatively or additionally,the apparatus may include a means for decreasing magnification of thevirtual image generated by movement of the mobile computing device in adirection away from the physical surface. The means discussed in Example31 may be implemented by modules, such as the modules discussed above inExample 19.

Example 32 includes any combination of the subject matter of Examples24-31, further including a means for generating virtual movement of thevirtual image based on physical movement of a user within a virtualenvironment in which the virtual image is projected. The means discussedin Example 32 may be implemented by modules, such as the modulesdiscussed above in Example 20.

Example 33 is an apparatus including a means for implementing the methodof any combination of Examples 1-10.

An embodiment is an implementation or example. Reference in thespecification to “an embodiment,” “one embodiment,” “some embodiments,”“various embodiments,” or “other embodiments” means that a particularfeature, structure, or characteristic described in connection with theembodiments is included in at least some embodiments, but notnecessarily all embodiments, of the present techniques. The variousappearances of “an embodiment,” “one embodiment,” or “some embodiments”are not necessarily all referring to the same embodiments.

Not all components, features, structures, characteristics, etc.described and illustrated herein need be included in a particularembodiment or embodiments. If the specification states a component,feature, structure, or characteristic “may”, “might”, “can” or “could”be included, for example, that particular component, feature, structure,or characteristic is not required to be included. If the specificationor claim refers to “a” or “an” element, that does not mean there is onlyone of the element. If the specification or claims refer to “anadditional” element, that does not preclude there being more than one ofthe additional element.

It is to be noted that, although some embodiments have been described inreference to particular implementations, other implementations arepossible according to some embodiments. Additionally, the arrangementand/or order of circuit elements or other features illustrated in thedrawings and/or described herein need not be arranged in the particularway illustrated and described. Many other arrangements are possibleaccording to some embodiments.

In each system shown in a figure, the elements in some cases may eachhave a same reference number or a different reference number to suggestthat the elements represented could be different and/or similar.However, an element may be flexible enough to have differentimplementations and work with some or all of the systems shown ordescribed herein. The various elements shown in the figures may be thesame or different. Which one is referred to as a first element and whichis called a second element is arbitrary.

It is to be understood that specifics in the aforementioned examples maybe used anywhere in one or more embodiments. For instance, all optionalfeatures of the computing device described above may also be implementedwith respect to either of the methods or the computer-readable mediumdescribed herein. Furthermore, although flow diagrams and/or statediagrams may have been used herein to describe embodiments, thetechniques are not limited to those diagrams or to correspondingdescriptions herein. For example, flow need not move through eachillustrated box or state or in exactly the same order as illustrated anddescribed herein.

The present techniques are not restricted to the particular detailslisted herein. Indeed, those skilled in the art having the benefit ofthis disclosure will appreciate that many other variations from theforegoing description and drawings may be made within the scope of thepresent techniques. Accordingly, it is the following claims includingany amendments thereto that define the scope of the present techniques.

What is claimed is:
 1. A system for projecting a virtual image,comprising: a light source to project light onto a physical surface; aprocessing device; and modules of code to be implemented by theprocessing device, the modules comprising: a plane identification moduleto identify a plane of the physical surface; an angular detection moduleto determine an angle indicating a degree of tilt of a mobile computingdevice relative to the physical surface based on a shape of the lightprojected onto the physical surface, wherein the angular detectionmodule is to determine whether the angle indicating the degree of tiltindicates that the mobile computing device is parallel or non-parallelto the plane of the physical surface; an image projection module toproject a plane of a virtual image onto the plane of the physicalsurface, wherein the extent of tilt of the plane of the virtual imagerelative to the physical surface is determined by the angle indicatingthe degree of tilt of the mobile computing device relative to thephysical surface; and a rendering module to render the virtual image ata graphical user interface of the mobile computing device, wherein thevirtual image is to transition between a surface mode and a window mode,wherein in the surface mode the virtual image is rendered as the mobilecomputing device is moved over the plane of the physical surface whileparallel to the plane, and wherein in the window mode the virtual imageis rendered if the mobile computing device is not parallel to the plane.2. The system of claim 1, wherein the graphical user interface of themobile computing device only displays a portion of the virtual image,and wherein the rendering module is to render portions of the virtualimage at the graphical user interface as the mobile computing device ismoved over the plane of the physical surface.
 3. The system of claim 2,wherein content of the virtual image is rendered as magnified as themobile computing device is moved over the plane of the physical surface.4. The system of claim 1, wherein the surface mode illustrates thevirtual image in two dimensions, and wherein the window mode illustratesthe virtual image having two dimensions in a three dimensionalenvironment.
 5. The system of claim 1, further comprising a movementmodule to generate virtual movement of the virtual image based onphysical movement of the mobile computing device at the plane of thephysical surface.
 6. The system of claim 5, the virtual movementcomprising: increasing magnification of the virtual image generated bymovement of the mobile computing device in a direction towards thephysical surface; or decreasing magnification of the virtual imagegenerated by movement of the mobile computing device in a direction awayfrom the physical surface; or any combination thereof.
 7. The system ofclaim 1, further comprising a movement module to generate virtualmovement of the virtual image based on physical movement of a userwithin a virtual environment in which the virtual image is projected. 8.A method for virtual image projection, comprising: projecting light ontoa physical surface; identifying a plane of the physical surface;determining an angle indicating a degree of tilt of a mobile computingdevice relative to the physical surface based on a shape of the lightprojected onto the physical surface; determining whether the angleindicating the degree of tilt indicates that the mobile computing deviceis parallel or non-parallel to the plane of the physical surface;projecting a virtual image onto the plane of the physical surface,wherein the extent of tilt of the virtual image relative to the physicalsurface is determined by the angle indicating the degree of tilt of themobile computing device relative to the physical surface; and renderingthe virtual image at a graphical user interface of the mobile computingdevice, wherein the virtual image is to transition between a surfacemode and a window mode, wherein in the surface mode the virtual image isrendered as the mobile computing device is moved over the plane of thephysical surface while parallel to the plane, and wherein in the windowmode the virtual image is rendered if the mobile computing device is notparallel to the plane.
 9. The method of claim 8, wherein the graphicaluser interface of the mobile computing device only displays a portion ofthe virtual image, further comprising rendering portions of the virtualimage at the graphical user interface as the mobile computing device ismoved over the plane of the physical surface.
 10. The method of claim 9,wherein content of the virtual image is rendered as magnified as themobile computing device is moved over the plane of the physical surface.11. The method of claim 8, wherein the surface mode illustrates thevirtual image in two dimensions, and wherein the window mode illustratesthe virtual image having two dimensions in a three dimensionalenvironment.
 12. A non-transitory computer readable medium includingcode, when executed, to cause a processing device to: project light ontoa physical surface; identify a plane of the physical surface; determinean angle indicating a degree of tilt of a mobile computing devicerelative to the physical surface based on a shape of the light projectedonto the physical surface; determine whether the angle indicating thedegree of tilt indicates that the mobile computing device is parallel ornon-parallel to the plane of the physical surface; project a plane of avirtual image onto the plane of the physical surface, wherein the extentof tilt of the plane of the virtual image relative to the physicalsurface is determined by the angle indicating the degree of tilt of themobile computing device relative to the physical surface; and render thevirtual image at a graphical user interface of the mobile computingdevice, wherein the virtual image is to transition between a surfacemode and a window mode, wherein in the surface mode the virtual image isrendered as the mobile computing device is moved over the plane of thephysical surface while parallel to the plane, and wherein in the windowmode the virtual image is rendered if the mobile computing device is notparallel to the plane.
 13. The non-transitory computer readable mediumof claim 12, further comprising code to cause the processing device torender portions of the virtual image at the graphical user interface asthe mobile computing device is moved over the plane of the physicalsurface, when the graphical user interface of the mobile computingdevice only displays a portion of the virtual image.
 14. Thenon-transitory computer readable medium of claim 13, wherein content ofthe virtual image is rendered as magnified as the mobile computingdevice is moved over the plane of the physical surface.
 15. Thenon-transitory computer readable medium of claim 12, wherein the surfacemode illustrates the virtual image in two dimensions, and wherein thewindow mode illustrates the virtual image having two dimensions in athree dimensional environment.
 16. The non-transitory computer readablemedium of claim 12, further comprising code to cause the processingdevice to generate virtual movement of the virtual image based onphysical movement of the mobile computing device at the plane of thephysical surface.
 17. The non-transitory computer readable medium ofclaim 16, the virtual movement comprising: increasing magnification ofthe virtual image generated by movement of the mobile computing devicein a direction towards the physical surface; or decreasing magnificationof the virtual image generated by movement of the mobile computingdevice in a direction away from the physical surface; or any combinationthereof.
 18. The non-transitory computer readable medium of claim 12,further comprising code to cause the processing device to generatevirtual movement of the virtual image based on physical movement of auser within a virtual environment in which the virtual image isprojected.